1. Field of the Invention
The present invention relates to video signal processing and, more particularly, to a technique for determining the slopes of field pixels. The technique of the present invention can, for example, be used to generate interpolated pixels when converting an interlaced video signal into a progressive video signal or when scaling (enlarging) any type of image.
2. Related Art
There are two common types of video display systems: interlaced display systems and progressive display systems. Interlaced display systems use interlaced video signals. An interlaced video signal includes even fields, which contain one half of the total lines displayed, and odd fields, which contain one half of the total lines displayed. The even fields and the odd fields of the interlaced video signal are alternately scanned onto the display to generate an image. By contrast, progressive display systems use progressive video signals. A progressive video signal includes a single frame, which contains all of the total lines displayed. The lines of the progressive video signal are successively scanned onto the display to generate an image.
Progressive display systems are becoming increasingly popular since they produce a higher quality image compared to interlaced display systems. However, many video signals that exist today are interlaced video signals. Thus to display the interlaced video signals on a progressive display system, the interlaced video signal must be converted into a progressive video signal. This conversion process is known as video deinterlacing.
Two common video deinterlacing techniques are known as the merging technique and the interpolation technique. According to the merging technique, the lines of the even and odd fields are interleaved (or merged) to generate a single frame. The merging technique is well suited for relatively static images, but produces highly objectionable artifacts when significant motion is present in the image. According to the interpolation technique, the interpolated lines (i.e., the missing lines) between the field lines are generated (usually by averaging the field pixels in the field lines above and below each interpolated line) and combined with the field lines to generate a single frame. The interpolation technique is well suited for video with high motion content, but produces a clearly visible loss of vertical resolution for relatively static images.
Many different interpolation techniques are known. According to one known interpolation technique, the so-called vertical interpolation technique, an interpolated pixel (i.e., a pixel in an interpolated line) is generated using an average of the field pixel positioned immediately above and the field pixel positioned immediately below the interpolated pixel. Typically, both the luma and chroma components of the field pixels are averaged by taking 50% of the field pixel positioned immediately above and 50% of the pixel positioned immediately below the interpolated pixel. This technique works fairly well when the interpolated pixel is on a horizontal or vertical edge. However, when the interpolated pixel is on a diagonal edge, this technique produces highly objectionable artifacts (i.e., jagged edges). The term “edge” refers to a line or other like feature that is part of the displayed image.
According to another known interpolation technique, the so-called diagonal interpolation technique, an interpolated pixel is generated by the following process. First, the slopes of field pixels that are positioned vertically and diagonally relative to the interpolated pixel are determined. To determine the slope of a field pixel, a set of horizontal field pixels (positioned relative to the field pixel whose slope is currently being determined), a set of vertical field pixels (positioned relative to the field pixel whose slope is currently being determined), and one or more sets of diagonal field pixels (positioned relative to the field pixel whose slope is currently being determined) are provided to respective edge detector circuits. Each edge detector circuit detects an edge having a specific slope (e.g., a 0 degree edge detector circuit detects horizontal edges, a +63.4 degree edge detector circuit detects +63.4 degree edges, and a −63.4 degree edge detector circuit detects −63.4 degree edges). Typically, only one of the edge detector circuits (if any) will detect an edge and will output a value indicating that an edge has been detected. The slope of the field pixel whose slope is being determined is then assigned the slope of the detected edge. This same process is used to determine the slopes of all of the pixels that are positioned vertically and diagonally relative to the interpolated pixels.
Second, the interpolated pixels are generated based on the slopes of field pixels that are positioned vertically and diagonally relative to the interpolated pixels. To generate an interpolated pixel, the slopes of a set of vertical field pixels and the slopes of multiple sets of diagonal field pixels that surround the interpolated pixel are examined to determine which set (if any) indicates a horizontal, a vertical, or a diagonal edge. If the field pixels within the same set have the same slope, then the field pixel whose slope is being determined is assigned this slope. If the field pixels within the same set do not have the same slope, then the field pixel whose slope is being determined is not assigned this slope. The same process is used to determine the slope of all of the interpolated pixels. The interpolated pixels and the field pixels can then be combined to generate a progressive video signal.
One problem with the diagonal interpolation technique is that the slopes of field pixels are often determined incorrectly. This is because the diagonal edge detector circuits and, in particular, the shallow diagonal edge detector circuits often falsely detect an edge. In other words, the output of the shallow edge detector circuits indicate that a field pixel has a particular slope when, in fact, the field pixel does not have this slope. Those of ordinary skill in the art will recognize that this problem is primarily due to high frequency luma noise which creates aliases. Since the slopes of the interpolated pixels are determined by examining the slopes of the field pixels, and some of the field pixels have incorrectly determined slopes, the values of some of the interpolated pixels will be generated incorrectly. Consequently, the resulting progressive scan video signal produces an image that includes highly objectionable artifacts (i.e., jagged edges).
Accordingly, what is needed is an improved technique for determining the slope of a field pixel.